# /usr/bin/python
# ! -*- coding:UTF-8 -*-

# Processor的模板类，使用此模板实现其中的函数，可以对接到UI。
class ProcessModel():
    # 需要以下3个全局变量
    # btns = []
    # selected_btns = []
    # NUMBER_OF_ITEM = 0

    def __init__(self):
        pass

    # 定义按钮的事件,该按钮是模拟当每个“细胞”被点击的事件
    def onclick(self, btn):
        pass

    # 点击下一步，调用execute_game函数
    def next_step(self):
        self.execute_game()

    # 处理下一步的内容，是实现主要游戏逻辑的函数
    def execute_game(self):
        pass

    # 开始，（包括暂停之后）
    def start(self):
        pass

    # 暂停
    def pause(self):
        pass

    # 清空当前内容，重新开始
    def clear(self):
        pass

    # 连续的执行
    def continuous(self):
        pass

    # 装载地图
    def load_map(self, file):
        pass

    # 保存为地图
    def output_map(self, file):
        pass

    # 可改变颜色
    def change_color(self):
        pass

    # 读入文件名，打开文件处理内容
    def load_map_data(self, file_name):
        pass

    # 退出程序，执行某些操作。在界面结束前会执行此函数
    def quit(self):
        pass

    # 打印全部的按钮
    def print_all_button(self):
        print "*****number of buttons:", self.NUMBER_OF_ITEM * self.NUMBER_OF_ITEM, "*****"
        for ii in range(self.NUMBER_OF_ITEM):
            for jj in range(self.NUMBER_OF_ITEM):
                print self.btns[ii][jj]
        print "*****print finish******"

    # 打印已经选择的所有的按钮
    def print_all_selected_button(self):
        print "*****selected buttons:", len(self.selected_btns), "*****"
        for ii in range(len(self.selected_btns)):
            print self.selected_btns[ii]
        print "*****print finish******"
